import {
	mapState
} from 'vuex'
import store from '@/store'

// 尝试将用户在根目录中的store/index.js的vuex的state变量加载到全局变量中
let $myStoreKey = []
try {
	$myStoreKey = store.state ? Object.keys(store.state) : []
} catch (e) {

}


module.exports = {
	beforeCreate() {
		if (this.$tools.vuex) {
			return
		}
		// 将vuex方法挂在在$my中
		// 使用方法: 
		// 修改vuex的state中的user.name变量为图鸟小菜 => this.$my.vuex('user.name', '图鸟小菜')
		// 修改vuexde state中的version变量为1.0.1 => this.$my.vuex('version', 1.0.1)
		this.$tools.vuex = (name, value) => {
			this.$store.commit('$myStore', {
				name,
				value
			})
		}
		this.$tools.login = (vuex_openId, vuex_token, vuex_user) => {
			this.$store.commit('$login', {
				vuex_openId,
				vuex_token,
				vuex_user
			})
		}
		this.$tools.logout = () => {
			this.$store.commit('$logout')
		}
	},
	computed: {
		// 将vuex的state中的变量结构到全局混入mixin中
		...mapState($myStoreKey)
	}
}